const plugins = [];

if (process.env.UNI_OPT_TREESHAKINGNG) {
    plugins.push(
        require('@dcloudio/vue-cli-plugin-uni-optimize/packages/babel-plugin-uni-api/index.js'),
    );
}

if (
    (process.env.UNI_PLATFORM === 'app-plus' && process.env.UNI_USING_V8) ||
    (process.env.UNI_PLATFORM === 'h5' && process.env.UNI_H5_BROWSER === 'builtin')
) {
    const path = require('path');

    const isWin = /^win/.test(process.platform);

    const normalizePath = (path) => (isWin ? path.replace(/\\/g, '/') : path);

    const input = normalizePath(process.env.UNI_INPUT_DIR);
    try {
        plugins.push([
            require('@dcloudio/vue-cli-plugin-hbuilderx/packages/babel-plugin-console'),
            {
                file(file) {
                    file = normalizePath(file);
                    if (file.indexOf(input) === 0) {
                        return path.relative(input, file);
                    }
                    return false;
                },
            },
        ]);
    } catch (e) {}
}

process.UNI_LIBRARIES = process.UNI_LIBRARIES || ['@dcloudio/uni-ui'];
process.UNI_LIBRARIES.forEach((libraryName) => {
    plugins.push([
        'import',
        {
            libraryName: libraryName,
            customName: (name) => {
                return `${libraryName}/lib/${name}/${name}`;
            },
        },
    ]);
});
module.exports = {
    presets: [
        [
            '@vue/app',
            {
                modules: 'commonjs',
                useBuiltIns: process.env.UNI_PLATFORM === 'h5' ? 'usage' : 'entry',
            },
        ],
    ],
    plugins,
};
